package com.eascs.p2p.investor.server;

import java.math.BigDecimal;
import java.util.List;import com.eascs.app.dao.PageResult;import com.eascs.p2p.common.entity.InvestorEntity;
import com.eascs.p2p.common.entity.InvestorRecordEntity;
import com.eascs.p2p.common.vo.InvestorVO;import com.eascs.p2p.common.vo.ModelResult;

public interface InvestorServiceInner {
	/**
	 * @Description: 查找投资用户
	 */
	public ModelResult<InvestorEntity> queryInvestor(InvestorEntity investor);

	/**
	 * @Description: 注册用户
	 */
	public ModelResult<Boolean> register(InvestorEntity investor);
	
	/**
	 * @Description: 下单
	 * @param InvestorEntity 投资者
	 * @param investObjId 标的id
	 * @param investMoney 投资金额
	 */
	public ModelResult<Boolean> buyInvest(InvestorEntity investor,String investObjId,BigDecimal investMoney);
	
	/**
	 * @Description: 获取用户投资记录
	 */
	public ModelResult<List<InvestorRecordEntity>> queryInvestorRecordList(InvestorRecordEntity investorRecord);
	
	/**
	 * @Description: 修改用户
	 */
	public ModelResult<Boolean> updateInvestor(InvestorEntity investor);
	
	/**
	 * @Description: 修改用户投资记录
	 */
	public ModelResult<Boolean> updateInvestorRecord(InvestorRecordEntity investorRecord);

	/**
	 * @Title: findPageInvestorEntity
	 * @Description: 分页查询投资者有关信息
	 * @author 张庆奇
	 * @param vo
	 * @return
	 * @return ModelResult<PageResult<Object[]>>
	 * @throws
	 * @date 2016年7月7日 上午10:59:31
	 */
	public ModelResult<PageResult<Object[]>> findPageInvestorEntity(InvestorVO vo);
	
	/**
	 * @Title: getInvestorNameorMobile
	 * @Description: 用于投资者联想
	 * @author 张庆奇
	 * @param keywords
	 * @return
	 * @return ModelResult<List<Object[]>>
	 * @throws
	 * @date 2016年7月7日 上午11:46:25
	 */
	public ModelResult<List<Object[]>> getInvestorNameorMobile(String keywords);
	
	/**
	 * @Title: updateStatus
	 * @Description: 修改投资者状态
	 * @author 张庆奇
	 * @param id
	 * @param status
	 * @return
	 * @return ModelResult<Boolean>
	 * @throws
	 * @date 2016年7月7日 下午2:53:45
	 */
	public ModelResult<Boolean> updateStatus(String id,int status);

	/**
	 * @Title: savePasswrod
	 * @Description: 设置密码
	 * @author lwx
	 * @param id
	 * @param password
	 * @return
	 * @return ModelResult<Boolean>
	 * @throws
	 * @date 2016年7月7日 下午2:53:45
	 */
	public ModelResult<Boolean> saveTradePasswrod(String id, String password);

	/**
	 * @Title: getPasswrod
	 * @Description: 获取密码
	 * @author lwx
	 * @param id
	 * @return
	 * @return ModelResult<Boolean>
	 * @throws
	 * @date 2016年7月7日 下午2:53:45
	 */
	public ModelResult<String> getTradePasswrod(String id);
	
	/**
	 * 根据账号查询用户信息
	 * @param account
	 * @return
	 */
	public ModelResult<InvestorEntity> queryInvestorByAccount(String account);
}
